﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Sistema_Totem.Presentacion.Presentador.Requerimientos;
using Sistema_Totem.Presentacion.Contrato.Requerimientos;
using Sistema_Totem.Clases;
using System.Web.SessionState;

namespace Sistema_Totem.Vista.Requerimientos
{
    public partial class EliminarRequerimiento : System.Web.UI.Page, 
        IContratoEliminarRequerimiento
    {
        #region Atributos

        /// <summary>
        /// Instancia del Presentador Eliminar Requerimiento.
        /// </summary>
        private PresentadorEliminarRequerimiento 
            _presentadorEliminarRequerimiento;

        #endregion Atributos

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Sesion["usuario"] == null || Sesion["proyecto"] == null || (Sesion["usuario"] as Usuario).TipoUsuario == "Administrador")
                Response.Redirect("../Login/login.aspx");
            else
            {
                if (!IsPostBack)
                {
                    _presentadorEliminarRequerimiento = new PresentadorEliminarRequerimiento(this);
                    Session["Lista"] = _presentadorEliminarRequerimiento.BuscarDocumentosRequerimiento();
                    _presentadorEliminarRequerimiento.OcultarColumna();
                }

            }
        }

        #region Implementación IContratoEliminarRequerimiento

        /// <summary>
        /// Implementación del método GVBuscarRequerimiento
        /// </summary>
        public GridView GVEliminarRequerimiento
        {
            get { return GridViewEliminarRequerimiento; }
        }

        /// <summary>
        /// Implementación del método MensajeError.
        /// </summary>
        public Label MensajeError
        {
            get { return mensaje; }
        }

        /// <summary>
        /// Implementación del método BuscarRequqrimiento.
        /// </summary>
        public TextBox BuscarRequerimiento 
        {
            get { return TextBoxBuscar; }
        }

        /// <summary>
        /// Implentacion del metodo Sesion
        /// </summary>
        public HttpSessionState Sesion
        {
            get { return Session; }
        }

        #endregion Implementación IContratoEliminarRequerimiento

        #region implementacion del motor de busqueda
        
        /// <summary>
        /// Metodo que realiza la accion del boton del motor de busqueda.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void ButtonBuscar(object sender, EventArgs e)
        {
            string nombreRequerimiento = BuscarRequerimiento.Text;
            _presentadorEliminarRequerimiento = new PresentadorEliminarRequerimiento(this);
            _presentadorEliminarRequerimiento.buscarRequerimiento(Session["Lista"], nombreRequerimiento);
        }

        #endregion implementacion del motor de busqueda

        #region requerimiento a eliminar
        
        /// <summary>
        /// Método que realiza la acción de eliminar el 
        /// requerimiento seleccionado.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void GridViewEliminarRequerimiento_SelectIndexChange(object sender, EventArgs e)
        {
            GridViewRow row = GridViewEliminarRequerimiento.SelectedRow;
            int idReque = Convert.ToInt32(row.Cells[0].Text);
            _presentadorEliminarRequerimiento = new PresentadorEliminarRequerimiento(this);
            _presentadorEliminarRequerimiento.EliminarRequerimiento(idReque);
            Response.Redirect("../Requerimientos/EliminarRequerimiento.aspx");

        }
        
        #endregion requerimiento a eliminar
    }
}